package bbalgae;

public class J20_package {

	/**
	 * 패키지 package
	 * 자바에서는 패키지를 이용해 관련 클래스나 유사한 기능을 가진 클래스들로 그룹화 할 수 있음
	 * 자바 핵심 클래스는 java.lang에 들어있다.
	 * 자바프로그램 작성에 도움을 주는 클래스들은 java.util패키지에 들어있음
	 * java로 시작하는 패키지 이름은 핵심 라이브러리를 위해 예약이 되잇다.
	 * javax로 시작하는 패키지는 java라는 핵심 라이브러리를 확장한 라이브러리라는 의미임
	 * 따라서, 일반 개발자는 java나 javax로 시작하는 패키지는 만들 수 없다(실행불가)
	 * 또한 클래스를 조직화하고 패키징 함으로써 이름 충돌을 피할수 있다.
	 * 즉, 클래스 이름이 동일하더라도 패키지만 다르다면 얼마든지 허용이됨
	 * 단 역방향 도메인 이름에 기초함
	 * 예를 들어 java 공식홈페이지 주소는
	 * java.sun.com 이것을 패키지 이름으로 작성한다면 
	 * com.sun.java로 시작하면 된다.
	 * 일반적으로 패키지는 조직성격, 회사명, 기타등등 순으로 작성하는 것이 관례임
	 * org.iedu.javaled17.bbalgae.project명.클래스명
	 * 패키지는 물리적 개체가 아님- 만드는데 돈이 안듬
	 * 따라서 하나만 만들 필요없음 패키지를 통해 클래스를 그룹화 하려면 package 라는 예약어를 사용해야한다.
	 * 클래스의 패키지화는 클래스의 가시성에 영향을 준다.
	 * 
	 * 패키지는 물리적인 객체가 아니지만 패키지 이름은 소스파일의 물리적인 위치와 관련 있다.
	 * 따라서 a,b,c 라는 패키지를 가진 클래스 D는 a/b/c 디렉토리 아래에 D라는 소스파일이 존재한다는 것을 의미 
	 * 한편 패키지 선언이 없는 클래스는 기본 default 패키지에 속해 있다고 말함
	 * 기본패키지에 속한 클래스들은 기본패키지 밖에서는 볼 수 없음
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
